home *** CD-ROM | disk | FTP | other *** search
- ; fnsintr.a - intrinsic functions.
- ; (C) Copyright 1984 Gregory R. Mansfield - All Rights Reserved.
- ; G. R. Mansfield. 84/06/13.
- ; Ver 1.1-5110.
-
- cseg
- public _cmp4
- public _shl4
- public _shr4
- public _switch
-
-
- ; cmp4 - compare long.
-
- _cmp4: cmp dx,bx
- jnz cmp4
- jns cmp2
- cmp ax,cx
- jz cmp4
- mov al,1
- jb cmp3
- cmp1: cmp al,2
- ret
-
- cmp2: cmp ax,cx
- jz cmp4
- mov al,1
- jb cmp1
- cmp3: cmp al,0
- cmp4: ret
-
-
- ; shl4 - shift left long.
-
- _shl4: mov ch,0
- jcxz shl2
- shl1: shl ax,1
- rcl dx,1
- loop shl1
- shl2: ret
-
-
- ; shr4 - shift right long.
-
- _shr4: mov ch,0
- jcxz shr2
- shr1: shr dx,1
- rcr ax,1
- loop shr1
- shr2: ret
-
-
- ; switch - integer switch list.
-
- _switch:
- pop si ; list address
- mov cx,cs:[si] ; length
- add si,2
- swt1: mov ax,cs:[si] ; list entry
- cmp ax,8000H
- jz swt2
- cmp bx,ax
- jz swt3 ; if match
- add si,4
- loop swt1
- jmp dx ; default
-
- swt2: mov dx,cs:[si+2] ; default address
- add si,4
- jmp swt1
- swt3: jmp word cs:[si+2] ; case
-